<?php
/**
 * author:歪妻
 * Date: 2020/10/31 0031
 */
// 获取 PDO  DSN的字符串
$root = realpath(__DIR__);

$database = $root . '/../data/data.sqlite';

$dsn = 'sqlite:' . $database;
$error = '';
// 一种安全措施，以避免任何人重置数据库（如果已存在）
if (is_readable($database) && filesize($database) > 0)
{
    $error = '请在重新安装之前手动删除现有数据库';

}
// 为数据库创建一个空文件
if (!$error)
{
    $createdOk = @touch($database);
    if (!$createdOk)
    {
        $error = sprintf(
            '无法创建数据库，请允许服务器在以下位置创建新文件 \'%s\'',
            dirname($database)
        );
    }
}
// 抓取我们要在数据库上运行的SQL命令
if (!$error)
{
    $sql = file_get_contents($root . '/../data/init.sql');
    if ($sql === false)
    {
        $error = '找不到SQL文件';
    }
}
//连接到新数据库并尝试运行SQL命令if (!$error)
if (!$error){
    $pdo = new PDO($dsn);
    $result  = $pdo->exec($sql);
    if ($result === false)
    {
        $error = '无法运行SQL,请删除'.$database .'错误：' . print_r($pdo->errorInfo(), true);
    }
}
// 查看我们创建了多少行（如果有）
$count = array();
if (!$error)
{
    $sql = "SELECT COUNT(*) AS c FROM post";
    $stmt = $pdo->query($sql);
    if ($stmt)
    {
        $count = $stmt->fetchColumn();
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>安装博客</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <style type="text/css">
        .box {
            border: 1px dotted silver;
            border-radius: 5px;
            padding: 4px;
        }
        .error {
            background-color: #ff6666;
        }
        .success {
            background-color: #88ff88;
        }
    </style>
</head>
<body>
<?php if ($error): ?>
    <div class="error box">
        <?php echo $error ?>
    </div>
<?php else: ?>
    <div class="success box">
        数据库和演示数据创建成功。
        <?php if ($count): ?>
            <?php echo $count ?> 条数据演示成功.
        <?php endif ?>
    </div>
<?php endif ?>
</body>
</html>